﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FrbaCommerce.Abm_Visibilidad
{
    public partial class AbmVisibilidad : Form
    {
        Visibilidad visibilidad;
        FuncionesComunes func = new FuncionesComunes();
        
        public AbmVisibilidad(Visibilidad visibilidad)
        {
            InitializeComponent();
            this.visibilidad= visibilidad;
            if (this.visibilidad.codigo!=0)
            {
                CargarVisibilidad();
            }
        }

        private void CargarVisibilidad() 
        {
            txtCodigo.Text = this.visibilidad.codigo.ToString();
            txtDescripcion.Text = this.visibilidad.descripcion;
            txtPorcentaje.Text = this.visibilidad.porcentaje.ToString();
            txtPrecio.Text = this.visibilidad.precio.ToString();
            txtDuracion.Text = this.visibilidad.duracion.ToString();
            //mskPrecio.Text=this.visibilidad.precio.ToString();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (VerificarDatosIngesados())
            {
                this.LlenarVisibilidad();
                if (visibilidad.BuscarPorCodigo(this.visibilidad.codigo))

                    visibilidad.Actualizar(this.visibilidad);
                else
                    visibilidad.Guardar(this.visibilidad);

                MessageBox.Show("Los datos han sido ingresados al sistema.", "Confirmacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            
        }

        private bool VerificarDatosIngesados() 
        {
            string mensaje = ChequeoCamposObligatorios();
            if (mensaje != "")
            {
                MessageBox.Show("El/los siguientes campos son obligatorios.\n" + mensaje, "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            else
                return true;
        }

        private string ChequeoCamposObligatorios() 
        {
            string mensaje, mensajeAmostrar = "";
            mensaje = func.verificarCampoVacio(txtCodigo, "Código");
            mensajeAmostrar += mensaje;
            mensaje = func.verificarCampoVacio(txtDescripcion, "Descripción");
            mensajeAmostrar += mensaje;
            mensaje = func.verificarCampoVacio(txtPorcentaje, "Porcentaje");
            mensajeAmostrar += mensaje;
            mensaje = func.verificarCampoVacio(txtPrecio, "Precio");
            mensajeAmostrar += mensaje;
            mensaje = func.verificarCampoVacio(txtDuracion, "Duracion");
            mensajeAmostrar += mensaje;
            return mensajeAmostrar;
        }
        private void LlenarVisibilidad() 
        {
            this.visibilidad.codigo = Convert.ToInt32(txtCodigo.Text);
            this.visibilidad.descripcion = txtDescripcion.Text;
            this.visibilidad.porcentaje = Convert.ToDecimal(txtPorcentaje.Text);
            this.visibilidad.precio = Convert.ToDecimal(txtPrecio.Text);
            this.visibilidad.duracion = Convert.ToInt32(txtDuracion.Text);
            //this.visibilidad.precio = Convert.ToDecimal(mskPrecio.Text);
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void lblLimpiarCampos_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            LimpiarCampos();
        }

        public void LimpiarCampos() 
        {
            this.txtCodigo.Text = String.Empty;
            this.txtDescripcion.Text = String.Empty;
            this.txtPorcentaje.Text = String.Empty;
            this.txtPrecio.Text = String.Empty;
            txtCodigo.BackColor = Color.White;
            txtDescripcion.BackColor = Color.White;
            txtPorcentaje.BackColor = Color.White;
            txtPrecio.BackColor = Color.White;
            txtDuracion.Text = String.Empty;
            txtDescripcion.BackColor = Color.White;


        }
        private void txtSoloNumeros_KeyPress(object sender, KeyPressEventArgs e)
        {
            func.keyPressDecimales(e);
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            func.keyPressDecimales(e);
        }


        
    }
}
